namespace Vin.Extension.Framework.AntChain.Models.Req;

public class OrderInfoReq
{
    /// <summary>
    /// 订单创建时间 格式为2019-08-01 13:00:00  yyyy-MM-dd HH:mm:ss  只支持30日内的订单信息同步
    /// </summary>
    public DateTime? OrderCreateTime { get; set; }

    /// <summary>
    /// 订单支付时间 格式为2019-08-01 13:00:00 yyyy-MM-dd HH:mm:ss 有首付款情况下必填
    /// </summary>
    public DateTime? OrderPayTime { get; set; }

    /// <summary>
    /// 订单付款主题，长度小于500
    /// </summary>
    public string? OrderPaySubject { get; set; }

    /// <summary>
    /// 订单付款内容描述，长度小于500
    /// </summary>
    public string? OrderPayBody { get; set; }

    /// <summary>
    /// 租期，单位月 大于0，小于等于60
    /// </summary>
    public int? RentTerm { get; set; }

    /// <summary>
    /// 租期单位 默认为“MONTH”，枚举：MONTH : 月 , DAY : 天 (暂不支持）
    /// </summary>
    public string? RentUnit { get; set; }

    /// <summary>
    /// 到期买断价 精确到分，即1234表示12.34元，到期金额，若为买断形式传买断金额，否则传到期归还金额,大于0
    /// dueMode=1必填，bizType=INSTALLMENT， 该字段默认为0    
    /// </summary>
    public long? BuyOutPrice { get; set; }

    /// <summary>
    /// 承租人收货地址 长度小于100  bizType=INSTALLMENT下非必填
    /// </summary>
    public string? UserAddress { get; set; }

    /// <summary>
    /// 到期形式 1: 到期归还(选择此模式，buyoutPrice不为空，作为用户到期未归还的买断金填入)  2: 租满即送（此时买断价可以为空）
    /// bizType=INSTALLMENT， 该字段默认为0
    /// </summary>
    public int? DueMode { get; set; }

    /// <summary>
    /// 租金总额,精确到分，即1234表示12.34元  大于0
    /// </summary>
    public long? TotalRentMoney { get; set; }

    /// <summary>
    /// 首付款金额, 精确到分，即1234表示12.34元 大于等于0  如果使用首付款功能就填写
    /// </summary>
    public long? DownPayment { get; set; }

    /// <summary>
    /// 融资链路使用
    /// 融资的资方的社会信用代码列表
    /// 列表最大长度为5
    /// 该字段有值、代表进入融资预审逻辑；没有值则订单资金是自持、不会进入融资逻辑
    /// 当所有的融资预审都通过时， 数组排序靠前的资方会优先作为融资方被选择
    /// </summary>
    public List<string>? FundIdList { get; set; }

    /// <summary>
    /// 用户是否静默签署，结合场景定向开放、默认不开放
    /// null | false :不静默签署
    /// true: 静默签署
    /// </summary>
    public bool? UserAutoSign { get; set; }

    /// <summary>
    /// 物流方案，默认为POST。针对融资订单、该值必须为POST  枚举： POST : 邮寄,OFFLINE : 线下自取， 无需物流接口校验
    /// </summary>
    public string? LogisticType { get; set; }

    /// <summary>
    /// 免押金额， 单位为分
    /// </summary>
    public long? DepositPrice { get; set; }

    /// <summary>
    /// 大于0，小于等于租期（rentTerm）  商户分账起始期数  融资必填
    /// </summary>
    public int? DivideStartTermIndex { get; set; }
}